package ee.metadataUtils;

import java.lang.annotation.Annotation;
import java.lang.reflect.Type;

import ee.metadataUtils.impl.AdapterNotFoundException;

//TODO create tests
public interface PropertyMetadata {
	public String getName();
	public Type getGenericType();
	public Class<?> getType();
	public Object getValue(Object instance) throws Throwable;
	public void setValue(Object instance, Object value) throws Throwable;
	public Annotation[] getAnnotations();
	public <T> T getAdapter(Class<T> adapterType) throws AdapterNotFoundException;
}
